import router from '@/router'
import store from '@/store' // store===this.$store
// 前置守卫
const whitePage = ['/login', '/404']
router.beforeEach(async(to, from, next) => {
  /*
  处理部分页面需要登陆后才可访问
  如果已登录不可访问登录页

  判断是否有token
      有token
         判断要去的页面是否是登录页
            是登录页
               跳转到首页、
            非登录页
               正常放行
      没token
         部分页面直接进，部分页面不可进入要跳转到登录页
         白名单：['/login','/404']
         判断要去的页面是否在白名单
            在白名单
              正常放行
            非白名单
              跳转登录页
*/

  if (store.state.user.token) {
    if (to.path.toLowerCase() === '/login') {
      next('/')
    } else {
      // console.log(1)
      // 没有用户信息才调用接口获取用户信息
      if (!store.state.user.userInfo.userId) {
        await store.dispatch('user/getUserInfo')
        console.log('to', to)
        // next({ path: to.path, query: to.query })
        next(to)
      } else {
        next()
      }

      // console.log(2)
    }
  } else {
    if (whitePage.includes(to.path.toLowerCase())) {
      next()
    } else {
      next('/login')
    }
  }
})
// 后置守卫
router.afterEach((to, from) => {
  // console.log('afterEach')
})

// 解析守卫
router.beforeResolve((to, from, next) => {
  // console.log('beforeResolve')
  next()
})
